package com.fivefu.core.camera.services;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fivefu.core.camera.vo.response.LabelPageList;
import com.fivefu.core.camera.vo.response.ProPageList;

public interface MonitorLabelService {
    /**
     * 批量增加标签下探头
     * @param labelId 标签编号
     * @param cameraIds 探头编号集合
     * @param userid 操作用户编号
     */
    void saveBatchCameraLabel(Long labelId, String cameraIds, String userid);

    /**
     *
     * 通过id删除标签
     * @param labelId  标签id
     * @param userId  用户编号
     */
    Boolean delMonitorLabelById(Long labelId,String userId);

    /**
     *
     * 查询标签下探头列表
     * @param page 页数
     * @param limit 数量
     * @param labelId 标签id
     * @param cameraCode 探头编号
     * @param cameraName 探头类型
     * @param cameraType 标签名称
     * @param cameraManufacturer 厂商
     * @param cameraAreaid 所属区域
     * @param cameraStatus 探头状态
     *
     */
    Page<ProPageList> queryLabelMonList(Integer page, Integer limit, Long labelId, String cameraCode, String cameraName, String cameraType, String cameraManufacturer, String cameraAreaid, String cameraStreetid, String cameraStatus, String onlineStatus);

    /**
     *探头增加标签探头列表（排除已增加的探头）
     * @param page 页数
     * @param limit 数量
     * @param labelId 标签id
     * @param cameraCode 探头编号
     * @param cameraName 探头类型
     * @param cameraType 标签名称
     * @param cameraManufacturer 厂商
     * @param cameraAreaid 所属区域
     * @param cameraStreetid 所属街道
     * @param cameraStatus 探头状态
     */
    Page<ProPageList> queryMonitorNotInLabel(Integer page, Integer limit, Long labelId, String cameraCode, String cameraName, String cameraType, String cameraManufacturer, String cameraAreaid, String cameraStreetid, String cameraStatus, String onlineStatus);

    /**
     *批量移除标签下的探头
     * @param id  标签id
     * @param cameraIds 探头编号集合
     * @param userId  用户编号
     */
    boolean delMulMonitor(Long id, String cameraIds,String userId);

    /**
     *
     * 分页查询标签列表
     * @param labelName  标签名称
     */
    Page<LabelPageList> queryLabelListByLabelName(Integer page, Integer limit, String labelName);
}
